Page({
  data: {
    stockCode: '',  // 股票代码
    stockName: '',  // 股票名称
    currentPrice: 0, // 当前价格
    openPrice: 0,   // 开盘价
    prevClose: 0,   // 昨收价
    highPrice: 0,   // 最高价
    lowPrice: 0,    // 最低价
    volume: 0,      // 成交量
    amount: 0,      // 成交额
    changeAmount: 0, // 涨跌额
    changePercent: 0, // 涨跌幅
    time: '',       // 更新时间
    date: '',       // 更新日期
    buyPrices: [],  // 买盘价格
    buyVolumes: [], // 买盘数量
    sellPrices: [], // 卖盘价格
    sellVolumes: [], // 卖盘数量
    kLineType: 'min', // 默认分时图
    imageLoaded: false, // 图片加载状态
    imageError: false,  // 图片加载错误状态
    stock: {},
    currentTab: 'news',  // 默认显示新闻标签
    newsList: [
      { id: 1, title: "海康威视：公司与华为达成战略合作，共同推进AI技术在安防领域的应用", time: "2023-10-05 10:30" },
      { id: 2, title: "中兴通讯：5G基站全球出货量突破10万台，市场份额稳步提升", time: "2023-10-05 09:15" },
      { id: 3, title: "格力电器：新一代节能空调获国家科技进步奖，能效比提升30%", time: "2023-10-04 16:45" },
      { id: 4, title: "阿里巴巴：第三季度财报超预期，云计算业务增长强劲", time: "2023-10-04 14:20" }
    ]
  },

  onLoad: function(options) {
    const { code } = options;
    // 根据传入的股票代码初始化页面
    this.setData({
      stockCode: code || 'sh601006' // 默认为大秦铁路
    });
    
    this.getStockData();
    
    // 定时刷新数据(交易时段内每5秒刷新一次)
    this.dataTimer = setInterval(() => {
      this.getStockData();
    }, 5000);
    
    // 设置导航栏标题为：股票名称（股票代码）
    wx.setNavigationBarTitle({
      title: `${this.data.stockName}（${this.data.stockCode}）`
    });
  },
  
  onUnload: function() {
    // 页面卸载时清除定时器
    if (this.dataTimer) {
      clearInterval(this.dataTimer);
    }
  },
  
  // 获取股票数据
  getStockData: function() {
    const that = this;
    wx.request({
      url: `https://hq.sinajs.cn/list=${this.data.stockCode}`,
      header: {
        'content-type': 'text/plain',
        'Referer': 'https://finance.sina.com.cn'
      },
      success(res) {
        // 解析返回的数据
        that.parseStockData(res.data);
      },
      fail(err) {
        console.error('获取股票数据失败', err);
        wx.showToast({
          title: '获取数据失败',
          icon: 'none'
        });
      }
    });
  },
  
  // 解析股票数据
  parseStockData: function(data) {
    try {
      // 提取数据字符串
      const regex = /=\"(.*)\";/;
      const matches = data.match(regex);
      
      if (matches && matches[1]) {
        const elements = matches[1].split(',');
        
        // 计算涨跌额和涨跌幅
        const currentPrice = parseFloat(elements[3]);
        const prevClose = parseFloat(elements[2]);
        const changeAmount = (currentPrice - prevClose).toFixed(2);
        const changePercent = ((changeAmount / prevClose) * 100).toFixed(2);
        
        // 整理买卖盘数据
        const buyPrices = [elements[11], elements[13], elements[15], elements[17], elements[19]];
        const buyVolumes = [elements[10], elements[12], elements[14], elements[16], elements[18]];
        const sellPrices = [elements[21], elements[23], elements[25], elements[27], elements[29]];
        const sellVolumes = [elements[20], elements[22], elements[24], elements[26], elements[28]];
        
        // 更新数据
        this.setData({
          stockName: elements[0],
          openPrice: parseFloat(elements[1]),
          prevClose: prevClose,
          currentPrice: currentPrice,
          highPrice: parseFloat(elements[4]),
          lowPrice: parseFloat(elements[5]),
          volume: (parseFloat(elements[8]) / 100).toFixed(0), // 转换为手
          amount: (parseFloat(elements[9]) / 10000).toFixed(2), // 转换为万元
          date: elements[30],
          time: elements[31],
          changeAmount: changeAmount,
          changePercent: changePercent,
          buyPrices: buyPrices,
          buyVolumes: buyVolumes,
          sellPrices: sellPrices,
          sellVolumes: sellVolumes
        });
        
        // 更新标题
        wx.setNavigationBarTitle({
          title: `${this.data.stockName}（${this.data.stockCode}）`
        });
      }
    } catch (error) {
      console.error('解析股票数据出错', error);
    }
  },
  
  // 切换K线图类型
  switchKLineType: function(e) {
    const type = e.currentTarget.dataset.type;
    this.setData({
      kLineType: type,
      imageLoaded: false,
      imageError: false
    });
  },

  // 图片加载成功
  handleImageLoad: function() {
    this.setData({
      imageLoaded: true,
      imageError: false
    });
  },

  // 图片加载失败
  handleImageError: function() {
    this.setData({
      imageLoaded: true,
      imageError: true
    });
    wx.showToast({
      title: '图表加载失败',
      icon: 'none'
    });
  },

  // 切换标签页
  switchTab: function(e) {
    const tab = e.currentTarget.dataset.tab;
    this.setData({
      currentTab: tab
    });
  },

  // 跳转到新闻详情页
  goToNewsDetail: function(e) {
    const newsId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/news/index?id=${newsId}`
    });
  },

  // 添加到自选
  addToFavorites: function() {
    // 获取本地存储的自选股列表
    let favorites = wx.getStorageSync('favorites') || [];
    
    // 检查是否已经在自选列表中
    const isInFavorites = favorites.some(item => item.code === this.data.stockCode);
    
    if (isInFavorites) {
      wx.showToast({
        title: '已在自选列表中',
        icon: 'none'
      });
      return;
    }
    
    // 添加到自选列表
    favorites.push({
      code: this.data.stockCode,
      name: this.data.stockName
    });
    
    // 保存到本地存储
    wx.setStorageSync('favorites', favorites);
    
    wx.showToast({
      title: '已添加到自选',
      icon: 'success'
    });
  },

  // 跳转到交易页面
  goToTrade: function() {
    wx.navigateTo({
      url: `/pages/moni/index?code=${this.data.stockCode}&name=${this.data.stockName}&price=${this.data.currentPrice}`
    });
  },

  // 显示更多选项
  showMoreOptions: function() {
    wx.showActionSheet({
      itemList: ['查看公司信息', '查看财务报表', '技术分析', '设置预警'],
      success: (res) => {
        // 根据用户选择执行相应操作
        switch (res.tapIndex) {
          case 0:
            // 查看公司信息
            break;
          case 1:
            // 查看财务报表
            break;
          case 2:
            // 技术分析
            break;
          case 3:
            // 设置预警
            break;
        }
      }
    });
  },

  // 分享功能
  onShareAppMessage: function() {
    return {
      title: `${this.data.stockName}（${this.data.stockCode}）`,
      path: `/pages/stock/index?code=${this.data.stockCode}`,
      imageUrl: `http://image.sinajs.cn/newchart/daily/n/${this.data.stockCode}.gif`
    };
  },

  // 分享到朋友圈
  onShareTimeline: function() {
    return {
      title: `${this.data.stockName}（${this.data.stockCode}）`,
      query: `code=${this.data.stockCode}`,
      imageUrl: `http://image.sinajs.cn/newchart/daily/n/${this.data.stockCode}.gif`
    };
  }
})